/**
AbstractStringIdServiceImpl.java
jackysoft-basic-core
2012-7-27下午6:00:32
@author 屈甲康
@QQ285799123
mailto:qujiakang@126.com
**/
package org.jackysoft.service;

import java.util.Collection;

import javax.annotation.Resource;

import org.hibernate.Query;
import org.jackysoft.entity.Identifiable;
import org.jackysoft.entity.nosql.OperationLog;
import org.jackysoft.util.OperationType;
import org.springframework.core.io.ResourceLoader;
import org.springframework.dao.DataAccessException;

import com.mongodb.DBObject;

/**
 * for stringed id entity presient
 * */
public class AbstractStringIdServiceImpl<T extends Identifiable> extends
		AbstractServiceImpl<String, T> {

	/**
	 * 
	 */
	private static final long serialVersionUID = -8839602362395073343L;

	
	
	public AbstractStringIdServiceImpl() {
		super();
	}

	public AbstractStringIdServiceImpl(Class<T> type) {
		super(type);	
	}

	@Override
	protected Collection<T> getsByHql(String hql) throws DataAccessException {
		
		return super.getsByHql(hql);
	}

	@Override
	protected Collection<T> getsByExample(T t) {
		
		return super.getsByExample(t);
	}

	@Override
	public String FromCLause() {
		
		return super.FromCLause();
	}

	@Override
	public Collection<T> gets() throws DataAccessException {
		
		return super.gets();
	}

	@Override
	//@Transactional(readOnly = false, propagation = Propagation.REQUIRES_NEW)
	public void create(T b) throws DataAccessException {
		
		super.create(b);
	}

	@Override	
	public void create(Collection<T> bs) throws DataAccessException {
		
		super.create(bs);
	}

	@Override
	//@Transactional(readOnly = false, propagation = Propagation.REQUIRES_NEW)
	public void remove(T t) throws DataAccessException {
		
		super.remove(t);
	}

	@Override
	//@Transactional(readOnly = false, propagation = Propagation.REQUIRES_NEW)
	public void remove(Collection<T> bs) throws DataAccessException {
		
		super.remove(bs);
	}

	@Override
	public void update(T b) throws DataAccessException {
		
		super.update(b);
	}

	@Override
	public void update(Collection<T> bs) throws DataAccessException {
		
		super.update(bs);
	}

	@Override
	public void saveOrUpdate(T b) throws DataAccessException {
		
		super.saveOrUpdate(b);
	}

	@Override
	public int count() throws DataAccessException {
		
		return super.count();
	}

	@Override
	protected Query query(String hql) throws DataAccessException {
		
		return super.query(hql);
	}

	@Override
	public Collection<T> gets(int start, int size) throws DataAccessException {
		
		return super.gets(start, size);
	}

	@Override
	public void setResourceLoader(ResourceLoader arg0) {
		
		super.setResourceLoader(arg0);
	}

	@Override
	public OperationLogService getLogService() {
		
		return super.getLogService();
	}

	@Override
	@Resource
	public void setLogService(OperationLogService logService) {
		
		super.setLogService(logService);
	}

	@Override
	protected OperationLog traceLog(OperationType oprType, String opr,
			String detail) {
		
		return super.traceLog(oprType, opr, detail);
	}

	@Override
	@Resource
	public void setNotifyService(SecurityRoleNotifyService notifyService) {
		
		super.setNotifyService(notifyService);
	}

	@Override
	public void drop() {
		
		super.drop();
	}

	@Override
	public T get(String id) throws DataAccessException {
		
		T t = super.get(id);
		
		return t; 
	}

	@Override
	public T get(DBObject query) throws DataAccessException {
		
		return super.get(query);
	}

	@Override
	public Collection<T> gets(int start, int size, DBObject sort)
			throws DataAccessException {
		
		return super.gets(start, size, sort);
	}

	@Override
	public Collection<T> query(int start, int size, DBObject query)
			throws DataAccessException {
		
		return super.query(start, size, query);
	}

	@Override
	public Collection<T> query(int start, int size, DBObject query,
			DBObject sort) throws DataAccessException {
		
		return super.query(start, size, query, sort);
	}

	@Override
	public Collection<T> gets(DBObject query) throws DataAccessException {
		
		return super.gets(query);
	}

	@Override
	public Collection<T> getsAndSort(DBObject query, DBObject sort)
			throws DataAccessException {
		
		return super.getsAndSort(query, sort);
	}

	@Override
	public void remove(String id) throws DataAccessException {
		
		super.remove(id);
	}

	@Override
	public void removeAll() throws DataAccessException {
		
		super.removeAll();
	}

	@Override
	public int count(DBObject query) {
		
		return super.count(query);
	}
	
	

}
